GhostCell: separating permissions from data in Rust

نویسندگان

چکیده

The Rust language offers a promising approach to safe systems programming based on the principle of aliasing XOR mutability : value may be either aliased or mutable, but not both at same time. However, implement pointer-based data structures with internal sharing, such as graphs doubly-linked lists, we need able mutate state. To support structures, provides number APIs that offer so-called interior ability via method calls shared reference. Unfortunately, existing sacrifice flexibility, concurrent access, and/or performance, in exchange for safety. In this paper, propose new API called GhostCell which avoids sacrifices by separating permissions from it enables user safely synchronize access collection single permission. repurposes an old trick typed functional programming: branded types (as exemplified Haskell’s ST monad), combine phantom and rank-2 polymorphism simulate lightweight form state-dependent types. We have formally proven soundness adapting extending RustBelt, semantic proof representative subset Rust, mechanized Coq.

برای دانلود رایگان متن کامل این مقاله و بیش از 32 میلیون مقاله دیگر ابتدا ثبت نام کنید

اگر عضو سایت هستید لطفا وارد حساب کاربری خود شوید

منابع مشابه

Separating indexes from data: a distributed scheme for secure database outsourcing

Database outsourcing is an idea to eliminate the burden of database management from organizations. Since data is a critical asset of organizations, preserving its privacy from outside adversary and untrusted server should be warranted. In this paper, we present a distributed scheme based on storing shares of data on different servers and separating indexes from data on a distinct server. Shamir...

متن کامل

F2: Separating Compute from Data in Cluster Computing

Existing data analytics frameworks are intrinsically compute-centric in nature. Their computation structure is complex and determined early, and they take decisions that bind early to this structure. This impacts expressiveness, job performance, and cluster efficiency. We present F , a new analytics framework that separates computation from data management, making the latter an equal first-clas...

متن کامل

TWO NEW RUST SPECIES (UREDINALES) FROM IRAN

Two rust fungi from Iran are described as new species, viz. Puccinia hedjaroudei on Scutellaria multicaulis (Lamiaceae) and Phragmidium gorganense on Rubus caesius (Rosaceae). A key to the species of Phragmidium on Rubus spp. in Iran is also provided. All holotypes are preserved in the fungus reference collection of the Ministry of Jihad-e Agriculture (IRAN), located in Department of Botany of ...

متن کامل

Separating Models of Learning from Correlated and Uncorrelated Data

We consider a natural framework of learning from correlated data, in which successive examples used for learning are generated according to a random walk over the space of possible examples. Previous research has suggested that the Random Walk model is more powerful than comparable standard models of learning from independent examples, by exhibiting learning algorithms in the Random Walk framew...

متن کامل

Separating Web Applications from User Data Storage with BSTORE Citation

This paper presents BSTORE, a framework that allows developers to separate their web application code from user data storage. With BSTORE, storage providers implement a standard file system API, and applications access user data through that same API without having to worry about where the data might be stored. A file system manager allows the user and applications to combine multiple file syst...

متن کامل

ذخیره در منابع من


  با ذخیره ی این منبع در منابع من، دسترسی به آن را برای استفاده های بعدی آسان تر کنید

ژورنال

عنوان ژورنال: Proceedings of the ACM on programming languages

سال: 2021

ISSN: ['2475-1421']

DOI: https://doi.org/10.1145/3473597